//获取文章分类数据
$.ajax({
  url: "/categories",
  typr: "get",
  success: function (response) {
    //数据与模板进行拼接
    var html = template("categoryTpl", { data: response });
    //将拼接好的字符串渲染到html
    $("#category").html(html);
  },
  error: function () {
    alert("获取文章分类信息失败！");
  },
});

//文章封面图片上传功能
$("#feature").on("change", function () {
  //获取被选中的图片文件
  var file = this.files[0];
  //创建formdata对象，实现二进制文件上传
  var formData = new FormData();
  //将管理员选择到的文件以属性的方式追加到formdata对象中，其属性名为cover
  formData.append("thumbnail", file);
  console.log(formData);
  $.ajax({
    url: "/upload",
    type: "post",
    data: formData,
    //告诉$.ajax方法不要处理ajax属性对应的参数
    processData: false,
    //由于参数类型在formdata中已经设置好了，所以此处告诉$.ajax不要设置参数类型
    contentType: false,
    success: function (response) {
      $("#thumbnall").val(response[0].thumbnail);
    },
  });
});

//实现文章添加功能
$("#addForm").on("submit", function () {
  //获取管理员在表单中输入的内容并传递给真正的数据获取表单
  $("#content").val(window.editor.txt.html());
  var formData = $(this).serialize();

  //向服务器端发送请求，进行文章添加
  $.ajax({
    url: "/posts",
    type: "post",
    data: formData,
    success: function () {
      //文章添加成功后跳转到文章列表页面
      location.href = "/admin/posts.html";
    },
  });
  //阻止表单默认行为
  return false;
});

//获取浏览器地址栏中的id参数
var id = getUrlParams("id");
//当前为修改文章操作
if (id != -1) {
  //根据id获取文章的详细信息
  $.ajax({
    url: "/posts/" + id,
    type: "get",
    success: function (response) {
      //再次获取文章分类信息并展示到文章修改下拉框中
      $.ajax({
        url: "/categories",
        typr: "get",
        success: function (categories) {
          //将文章分类信息挂载到response下，以便于拼接模板
          response.categories = categories;
          //将文章的详细信息显示在修改表单中
          var html = template("modifyTpl", response);
          $("#parentBox").html(html);

          $("#created").val(response.updateAt.substr(0, 10));
          const E = window.wangEditor;
          const editor = new E("#content1");
          editor.config.height = 500;
          // 或者 const editor = new E( document.getElementById('div1') )
          editor.create();
          window.editor = editor;
          window.editor.txt.html(response.content);
        },
        error: function () {
          alert("获取文章分类信息失败！");
        },
      });
      //此处为外层success函数
    },
    error: function () {
      alert("无法获取到您要修改的文章信息！");
    },
  });
}

//从浏览器的地址栏中获取查询参数
function getUrlParams(name) {
  var paramsAry = location.search.substr(1).split("&");
  //循环数组,使属性值和属性名分开
  for (var i = 0; i < paramsAry.length; i++) {
    var tmp = paramsAry[i].split("=");
    if (tmp[0] == name) {
      return tmp[1];
    }
  }
  //若找不到要找的参数，则返回-1
  return -1;
}

//以事件委托的形式，为修改表单绑定提交事件
$("#parentBox").on("submit", "#modifyForm", function () {
  //获取管理员输入的内容
  $("#content").val(window.editor.txt.html());
  var formdata = $(this).serialize();
  //获取id
  var id = $(this).attr("data-id");
  $.ajax({
    url: "/posts/" + id,
    type: "put",
    data: formdata,
    success: function () {
      alert("文章修改成功！");
      location.href = "/admin/posts.html";
    },
    error: function () {
      alert("文章信息修改失败！");
    },
  });
  //阻止表单默认提交行为
  return false;
});
